1. Field of the Invention
This invention relates to systems and methods for optimizing resource allocation in a conference call solution. In particular, the present invention relates to a distributed architecture for conference calls in a Voice over Internet Protocol (VOIP) system.
2. Description of the Background Art
A group of people decide to participate in a conference call. Any user with privileges sets up a conference call for a particular time, and provides a conference call number and password for the conference session. People call in and the conference is set up. Such a situation has been handled by various conference solutions but the magic lies in how different solutions handle the behind-the-scenes set up.
Traditionally, a conference call solution has one call server to handle conference call sessions. If the server reaches its capacity, additional callers cannot be accommodated. Moreover, if the stand-alone server fails, the conference call is terminated.
The alternative to stand alone server is a cluster of servers driven by a master server. The master server gets all conference call requests and the master then allocates various conference calls to different slave servers in the cluster. In this master-slave system, the master server becomes the bottleneck. Because all call requests are made to the master server, the master server must have the processing resources to handle all the call requests. If the master server crashes, the whole system becomes inoperative. Additionally, the network connection between the master server and the caller's site may become a bandwidth bottleneck. Also, scaling a master-server conference call system requires tedious manual configurations. Moreover, the master-slave architecture does not use the available bandwidth efficiently when connection requests for one conference call are allocated to more than one conference call servers.
The traditional conference call solutions also limit the number of participants that can be heard in a conference call. The traditional conference call solutions cannot handle numerous parties speaking in temporal proximity in a conference call. The conference call solutions therefore choose a limited number, typically three, of the loudest parties in the conference call and mute the rest of the participants in the call. The traditional solutions allow only these loudest parties to be heard in the conference call even if a conference call solution is serving hundreds of participants.